Después de analizar el contenido de cada tabla, se concluyó que las que contienen información relevante para este proyecto son las siguientes:
tb_unidades: catálogo de unidades que se pueden utilizar para cada una de las actividades POA.
tb_proyectos: tabla de proyectos implementados por ANP, año y el tema al que corresponden.
tb_actividad_poa: tabla de actividades POA programadas por una ANP en el marco de un proyecto, sus unidades y las metas programadas por trimestre.
tb_act_trim: tabla de actividades POA realizadas por una ANP, donde se comparan las metas con los resultados alcanzados para cada trimestre.
Primero que nada, comparamos la cantidad de ANP’s en el POA que realizan por objetivo y año (2015, 2016). Escogimos cantidad de proyectos porque, al analizar los datos, nos dimos cuenta que las ANPs implementan máximo un proyecto por tema por año, lo que refleja los principales
Como podemos observar, al analizar las alturas de las barras:
Ahora, comparando la cantidad de proyectos por año y desglosados por temas, podemos notar que:
En la gráfica se muestran los temas ordenados por cantidad de proyectos, en la tabla anexa se muestran desglosados por objetivos y ordenados por cantidad de proyectos (anp’s) totales:
Objetivo,temas,n_2015,n_2016,n_total
Prosiguiendo con el análisis, ahora resulta interesante preguntarse, en resumen, cuántos temas aborda por objetivo cada ANP, para los dos años de interés:
Viendo la gráfica anterior, podemos observar lo siguiente:
La pregunta natural a contestar ahora es la siguiente: ¿Cuántas proyectos (temas distintos) ejecutaron las ANP’s por año?
Al observar la siguiente gráfica, podemos ver que la mediana de proyectos ejecutados disminuyó del 2015 al 2016 tanto para ANP’s como para direcciones regionales, no obstante, las direcciones generales tienden a ejecutar más proyectos, y por lo tanto, a abordar más temas que las ANPs.
Nos concentramos ahora en un análisis a nivel de actividades programadas y realizadas, es decir, a un análisis a nivel más fino
A este nivel, el análisis involucrará principalmente la relación entre actividades y unidades de medida de las mismas, debido a que este punto es el esencial para lograr una estandarización de los datos capturados, y con ello, poder efectuar análisis que sinteticen información de todas las ANP’s.
Cabe destacar que se eliminaron las actividades y unidades no comparables entre sí, como por ejemplo, la unidad de “número de actividades realizadas” y las actividades y unidades “Otra…”.
En la siguiente gráfica se puede observar que el 75% de las combinaciones actividad + unidad tiene menos de 30 datos, lo que impacta en su alcance para hacer análisis estandarizados utilizando datos de varias ANP’s
Restringiéndonos a las actividades prioritarias abordadas en esta consultoría, podemos observar que todas excdpto una utilizan varias unidades de medición distintas.
# Seleccionar actividades correspondientes a temas que nos interesan y hacer el mismo
# diagrama.
temas_prioritarios <- tb_temas %>%
arrange(id_tema) %>%
filter(id_tema %in% c(
5,
7,
8,
9,
10,
11,
15,
#16,
#20,
22
#24
)) %>%
'$'('tema')
Actividades_temas_prioritarios_unidades_comparables <- Actividades_unidades_comparables %>%
filter(tema %in% temas_prioritarios)
Actividades_otros_temas_unidades_comparables <- Actividades_unidades_comparables %>%
filter(
id_actividad %in% c(93, 108, 63) | #infraestructura y señalética
stri_detect_regex(actividad,
"capacitación de productor|uso sustentable|visitante|uso público",
case_insensitive=TRUE) # aprovechamiento sustentable consuntivo y no consuntivo
)
Actividades_prioritarias_unidades_comparables <- Actividades_temas_prioritarios_unidades_comparables %>%
union(Actividades_otros_temas_unidades_comparables) %>% #unión eliminando duplicados
arrange(tema, desc(n))
Actividades_prioritarias_num_unidades <- Actividades_prioritarias_unidades_comparables %>%
group_by(actividad) %>%
summarise(
num_unidades = n()
) %>%
ungroup()
De esta manera, resulta interesante saber el número máximo de registros comparables por actividad prioritaria, y el número de registros comparables quese tendrían si se tuvieran las unidades estandarizadas.
Cada actividad tendría, en promedio, 60 registros más de registros comprables si existiera esta estandarización, algunas actividades alcanzando una diferencia de más de trescientos registros.
Actividades_prioritarias_numero_registros_comparables <- Actividades_prioritarias_unidades_comparables %>%
group_by(actividad) %>%
summarise(
id_actividad = first(id_actividad),
max_registros_comparables = max(n),
total_registros = sum(n),
diferencia = total_registros - max_registros_comparables
) %>%
ungroup() %>%
arrange(diferencia) %>%
mutate(
indice = 1:nrow(.)
) %>%
gather(key = "llave", value = "valor", max_registros_comparables, total_registros, diferencia)
Posteriormente, nos concentramos en encontrar dentro de cada tema prioritario, cuáles eran las actividades prioritarias (y con qué unidades), que tienen mayor representabilidad entre ANP’s, es decir, que se realizan en la mayor cantidad de ANP’s posibles.
La siguiente tabla resume este análisis, que a su vez apoya la elección de las actividades a cuantificar y georreferenciar en esta consultoría.
# Tabla de unidades de actividades prioritarias utilizadas por el mayor número de ANP's.
Actividades_prioritarias_unidades_anps <- Actividad_poa %>%
# Homologando actividades iguales con distintos id's
group_by(actividad) %>%
mutate(
id_actividad = first(id_actividad)
) %>%
ungroup() %>%
group_by(actividad, unidad, direccion) %>%
summarise(
id_actividad = first(id_actividad),
tema = first(tema),
n = n()
) %>%
ungroup() %>%
filter(complete.cases(.)) %>%
select(
id_actividad,
actividad,
unidad,
tema,
direccion,
n
) %>%
# Quedándome con las unidades comparables
filter(
!stri_detect_regex(unidad, "acciones|\\.\\.\\.", case_insensitive=TRUE) |
stri_detect_regex(unidad, "con|proyectos", case_insensitive=TRUE)
) %>%
# Quedándome con actividades prioritarias
filter(tema %in% temas_prioritarios |
id_actividad %in% c(93, 108, 63) | #infraestructura y señalética
stri_detect_regex(actividad,
"capacitación de productor|uso sustentable|visitante|uso público",
case_insensitive=TRUE) # aprovechamiento sustentable consuntivo y no consuntivo)
) %>%
group_by(actividad, unidad) %>%
summarise(
id_actividad = first(id_actividad),
tema = first(tema),
num_anps = n()
) %>%
ungroup() %>%
arrange(tema, actividad, desc(num_anps))
Actividades_prioritarias_unidades_anps_presentable <- Actividades_prioritarias_unidades_anps %>%
ddply(~tema, function(x){
aux <- x %>%
arrange(desc(num_anps)) %>%
head(2)
#print(aux)
return(aux)
})
Ahora, agregando por ANP, seleccionamos actividades con metas comparables y graficamos, por trimestre, la meta agregada (en las unidades correspondientes) vs la cantidad de unidades alcanzadas.
Cabe destacar que no utilizamos el campo de “acumulativo”, porque nos dimos cuenta que su información no es muy confiable, al comparar con lo que sabemos de las juntas, para las 4 ANP’s de interés.
# Seleccionando actividades cuyas metas son comparables y graficándolas.
# Las principales actividades + unidades comparables entre ANP's
# las tenemos en la tabla "Actividades_prioritarias_unidades_anps_presentable"
# el campo de acumulativo no es muy confiable, por lo que se omitió, al menos
# en principio.
# Tabla con los valores de actividad + unidad que nos interesan:
actividades_unidades_interes <- Actividades_prioritarias_unidades_anps_presentable %>%
select(
actividad,
unidad
) %>%
mutate(
id_actividad_unidad = 1:nrow(.)
)
# Gráfica de metas realizadas y alcanzadas vs tiempo para las actividades + unidades
# de interés, agregada por ANP.
Actividades_prioritarias_unidades_realizadas_anp <- Actividad_poa %>%
filter(!is.na(anio)) %>%
inner_join(actividades_unidades_interes, by = c("actividad", "unidad")) %>%
select(
-realizada_1,
-realizada_2,
-realizada_3,
-realizada_4
) %>%
gather(llave, valor, alcanzadas_1, meta_1, alcanzadas_2, meta_2, alcanzadas_3,
meta_3, alcanzadas_4, meta_4, na.rm = TRUE) %>%
separate(llave, c("tipo","trimestre")) %>%
transmute(
id_actividad_unidad = id_actividad_unidad,
actividad = actividad,
unidad = unidad,
trimestre = paste0(anio, "_", trimestre),
tipo = tipo,
valor = valor
) %>%
group_by(id_actividad_unidad, actividad, unidad, trimestre, tipo) %>%
summarise(
n = sum(valor)
) %>%
ungroup %>%
arrange(id_actividad_unidad, tipo, trimestre) %>%
# Calculando frecuencias acumulativas
group_by(id_actividad_unidad, tipo) %>%
mutate(
cum_n = cumsum(n)
) %>%
ungroup()